﻿using Newtonsoft.Json;

namespace Fadada.FASC.SDK.DotNetCore.Model
{
    /// <summary>
    /// 创建签署任务 (基于签署模板)  SignActorTwo,签署模板详情SignActor，model中有多个，请注意区分
    /// </summary>
    public class SignActorTwo
    {
        /// <summary>
        /// 签署方信息，必须设置
        /// Actor.actorType=signer。以actorId和
        /// 模板中一一匹配
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "signActor",
            Required = Required.Always)]
        public Actor SignActor { get; set; }

        /// <summary>
        /// 时阻塞：
        /// false: 不阻塞
        /// true: 阻塞
        /// 默认为false。如果阻塞，暂不向该签署
        /// 方发送通知和提醒，签署任务也暂停向
        /// 下流转，直到调用解阻签署任务接口将
        /// 该签署任务解阻。注意：即使该签署任
        /// 务是无序签的，相应的参与方也会被阻塞。
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "blockHere",
            Required = Required.AllowNull)]
        public bool BlockHere { get; set; }

        /// <summary>
        /// 是否请求该签署方免验证签：
        /// false: 否
        /// true: 是
        /// 默认为false。
        /// 注意：
        /// 1. 如设置为true，当轮到签署方签署
        /// 时，法大大平台将进一步判断其是否已
        /// 授权该业务场景免验证签：
        /// 如有授权，法大大平台自动执行签署；
        /// 如未授权，该签署方将依然需用正常方
        /// 式签署。
        /// 2. 如此处设置为true，则要携带
        /// businessId参数，否则将不起效果。
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "requestVerifyFree",
            Required = Required.AllowNull)]
        public bool RequestVerifyFree { get; set; }

        /// <summary>
        /// 式：
        /// sms: 短信验证码
        /// face: 刷脸验证
        /// email: 邮件验证码
        /// 默认选择全部，并按照法大大平台定义
        /// 的顺序展示。如果您需要特定的顺序，
        /// 请自行排列。
        /// 根据国家互联网信息办公室关于《网络
        /// 数据安全管理条例》第二十五条“数据处
        /// 理者利用生物特征进行个人身份认证
        /// 的，应当对必要性、安全性进行风险评
        /// 估，不得将人脸、步态、指纹、虹膜、
        /// 声纹等生物特征作为唯一的个人身份认
        /// 证方式，以强制个人同意收集其个人生
        /// 物特征信息。”的要求，此处不允许仅选
        /// 择”刷脸验证“，即：如果您需要”刷脸验
        /// 证“，则必须至少同时选择其他任一种方
        /// 式，否则系统可能返回失败。
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "verifyMethods",
            Required = Required.AllowNull)]
        public string[] VerifyMethods { get; set; }

        
    }
}